package com.alpha.core.utils;

import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.format.DatePrinter;
import cn.hutool.core.date.format.FastDateFormat;

import java.util.Date;

/**
 * 日期工具类
 *
 * @author chenruwan
 * @since 2022-01-01
 */
@SuppressWarnings("unused")
public class DateUtil {
    private DateUtil() {
    }

    /**
     * 标准日期格式：yyyy-MM-dd
     */
    public static final String NORM_DATE_PATTERN = DatePattern.NORM_DATE_PATTERN;
    public static final FastDateFormat NORM_DATE_FORMAT = DatePattern.NORM_DATE_FORMAT;
    /**
     * 标准时间格式：HH:mm:ss
     */
    public static final String NORM_TIME_PATTERN = DatePattern.NORM_TIME_PATTERN;
    /**
     * 标准日期时间格式，精确到秒：yyyy-MM-dd HH:mm:ss
     */
    public static final String NORM_DATETIME_PATTERN = DatePattern.NORM_DATETIME_PATTERN;
    /**
     * 标准时间格式，精确到分：HH:mm
     */
    public static final String NORM_TIME_MINUTE_PATTERN = "HH:mm";


    /**
     * 当前日期，格式 yyyy-MM-dd
     *
     * @return 当前日期的标准形式字符串
     */
    public static Date today() {
        return cn.hutool.core.date.DateUtil.truncate(new Date(), DateField.DAY_OF_MONTH);
    }

    /**
     * 根据特定格式格式化日期
     *
     * @param date   被格式化的日期
     * @param format 日期格式
     * @return 格式化后的字符串
     */
    public static String format(Date date, String format) {
        return cn.hutool.core.date.DateUtil.format(date, format);
    }

    public static String format(Date date, DatePrinter format) {
        return cn.hutool.core.date.DateUtil.format(date, format);
    }
}
